package com.example.loop.configuration;

/**
 * @Title GlobalExceptionHandler.java
 * @description 用于解决shiroFilterFactoryBean.setUnauthorizedUrl("/403");不生效的问题
 * @time 2020年1月8日 上午11:13:30
 * @author wuguodong
 **/

import org.apache.shiro.authz.AuthorizationException;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author Liaorun
 * @ControllerAdvice注解的作用：是一个Controller增强器，可对controller中被@RequestMapping注解的方法加一些逻辑处理，最常用的就是异常处理；【三种使用场景】全局异常处理。全局数据绑定，全局数据预处理
 * @Order 注解@Order或者接口Ordered的作用是定义SpringIOC容器中Bean的执行顺序的优先级，而不是定义Bean的加载顺序，Bean的加载顺序不受@Order或Ordered接口的影响；
 * @ExceptionHandler 统一异常处理
 *
 */
@ControllerAdvice
@Order(value = Ordered.HIGHEST_PRECEDENCE)
public class GlobalExceptionHandler {

    @ExceptionHandler(value = AuthorizationException.class)
    @ResponseBody
    public String handleAuthorizationException() {
        return "未经授权不能访问";
    }
}
